# 编译后内核路径
KERNEL_DIR = /home/lss/work/kernel/imx6/ebf-buster-linux/build_image/build
# 定义框架
# ARCH 为 x86 时，编译链头为 
# ARCH 为 arm 时，编译链头为 arm-linux-gnueabihf-
ARCH = arm
ifeq ($(ARCH),x86)
CROSS_COMPILE = # 交叉编译工具头,如：
else
CROSS_COMPILE = arm-linux-gnueabihf-# 交叉编译工具头,如：arm-linux-gnueabihf-
endif
CC      = $(CROSS_COMPILE)gcc # 编译器，对 C 源文件进行编译处理，生成汇编文件

# 共享到sub-Makefile
export  ARCH  CROSS_COMPILE

TARGET_APP =  chrdev_app

# 本次整个编译需要源 文件 和 目录
# 这里的“obj-m” 表示该模块不会编译到zImage ，但会生成一个独立的xxx.ko 静态编译（由内核源码顶层Makefile识别）
obj-m := chrdev_driver.o # 需要把当前目录下的 main.c 编进程序里
# obj-m += $(patsubst %.c,%.o,$(shell ls *.c))

# 第一个目标
all :
	$(MAKE) -C $(KERNEL_DIR) M=$(CURDIR) modules
#	make mobailes 就是是编译模块，上面是其添加参数的指令
	$(CROSS_COMPILE)gcc -o $(TARGET_APP) chrdev_app.c

    
# 清理
.PHONY:clean
clean:
	$(MAKE)  -C $(KERNEL_DIR) M=$(CURDIR) clean
	rm $(TARGET_APP)
